package config

//
//import (
//	"strings"
//	"sync"
//)
//
//type SumsubConfig struct {
//	Domain        string `mapstructure:"domain"`
//	Token         string `mapstructure:"token"`
//	Secret        string `mapstructure:"secret"`
//	WebhookSecret string `mapstructure:"webhook_secret"`
//}
//
//var onceSumsubConfig sync.Once
//var sumsubConfig SumsubConfig
//
//func GetSumsubConfig() *SumsubConfig {
//	onceSumsubConfig.Do(func() {
//		_ = Viper().UnmarshalKey("provider.sumsub", &sumsubConfig)
//		if strings.HasPrefix(sumsubConfig.Secret, SechubPrefix) {
//			if decryptedString, err := KycSechub().DecryptData(sumsubConfig.Secret); err == nil {
//				sumsubConfig.Secret = decryptedString
//			}
//		}
//		if strings.HasPrefix(sumsubConfig.WebhookSecret, SechubPrefix) {
//			if decryptedString, err := KycSechub().DecryptData(sumsubConfig.WebhookSecret); err == nil {
//				sumsubConfig.WebhookSecret = decryptedString
//			}
//		}
//
//	})
//	return &sumsubConfig
//}
//
//type JUMIOConfig struct {
//	Domain                     string `mapstructure:"domain"`
//	WorkflowDomain             string `mapstructure:"workflow_domain"`
//	Token                      string `mapstructure:"token"`
//	Secret                     string `mapstructure:"secret"`
//	CallBackWorkFlow           string `mapstructure:"callback_workflow"`
//	CallBackDocument           string `mapstructure:"callback_document"`
//	CallBackFaceAuth           string `mapstructure:"callback_faceauth"`
//	SuccessURL                 string `mapstructure:"success_url"`
//	ErrorURL                   string `mapstructure:"error_url"`
//	DataCenter                 string `mapstructure:"data_center"`
//	DocumentVerificationDomain string `mapstructure:"document_verification_domain"`
//	RetrievalDomain            string `mapstructure:"retrieval_domain"`
//	CoreDomain                 string `mapstructure:"core_domain"`
//	HealthCheckDomain          string `mapstructure:"health_check_domain"`
//}
//
//var onceJUMIOConfig sync.Once
//var jUMIOConfig JUMIOConfig
//
//func GetJUMIOConfig() *JUMIOConfig {
//	onceJUMIOConfig.Do(func() {
//		_ = Viper().UnmarshalKey("provider.jumio", &jUMIOConfig)
//		if strings.HasPrefix(jUMIOConfig.Secret, SechubPrefix) {
//			if decryptedString, err := KycSechub().DecryptData(jUMIOConfig.Secret); err == nil {
//				jUMIOConfig.Secret = decryptedString
//			}
//		}
//	})
//	return &jUMIOConfig
//}
//
//type OnfidoConfig struct {
//	Domain                    string `mapstructure:"domain"`
//	APIVersion                string `mapstructure:"api_version"`
//	APIToken                  string `mapstructure:"api_token"`
//	WebHookToken              string `mapstructure:"webhook_token"`
//	Level1WorkflowIDTwoSide   string `mapstructure:"level1_workflow_id_two_side"`
//	Level1WorkflowIDOneSide   string `mapstructure:"level1_workflow_id_one_side"`
//	Level1WorkflowIDWeb       string `mapstructure:"level1_workflow_id_web"`
//	Level2WorkflowID          string `mapstructure:"level2_workflow_id"`
//	SecondaryLevel1WorkflowID string `mapstructure:"secondary_level1_workflow_id"` // Secondary Level 1 Workflow ID
//	SecondaryLevel2WorkflowID string `mapstructure:"secondary_level2_workflow_id"` // Secondary Level 2 Workflow ID
//}
//
//var onceOnfidoConfig sync.Once
//var onfidoConfig OnfidoConfig
//
//func GetOnfidoConfig() *OnfidoConfig {
//	onceOnfidoConfig.Do(func() {
//		_ = Viper().UnmarshalKey("provider.onfido", &onfidoConfig)
//		if strings.HasPrefix(onfidoConfig.APIToken, SechubPrefix) {
//			if decryptedString, err := KycSechub().DecryptData(onfidoConfig.APIToken); err == nil {
//				onfidoConfig.APIToken = decryptedString
//			}
//		}
//		if strings.HasPrefix(onfidoConfig.WebHookToken, SechubPrefix) {
//			if decryptedString, err := KycSechub().DecryptData(onfidoConfig.WebHookToken); err == nil {
//				onfidoConfig.WebHookToken = decryptedString
//			}
//		}
//	})
//	return &onfidoConfig
//}
